/**
 * Created with IntelliJ IDEA.
 * Description:数组nums包含从0到n的所有整数，但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗？
 * User: 86183
 */
public class Test5 {
    public static int missingNumber(int[] nums) {
        int[] array = nums;
        int flg = 0;
        //通过异或来找出缺少的数字
        for(int i=0;i<array.length;i++ ){
            flg^=i;
            flg^=array[i]; //flg = 0^ 0^3 ^1^0 ^2^1 =3^2
        }
        flg^=array.length;//flg = 3^2 ^3 = 2
        return flg;
    }

    public static void main(String[] args) {
        int[] nums = new int[]{3,0,1};
        System.out.println(missingNumber(nums));
    }
}
